package _00

/*
时间复杂度：O(N^2)
空间复杂度：O()

*/

func subarrayBitwiseORs(arr []int) int {
	hash := make(map[int]bool)
	for i := 0; i < len(arr); i++ {
		hash[arr[i]] = true
		for j := i - 1; j >= 0; j-- {
			if (arr[i] | arr[j]) == arr[j] {
				break
			}
			// arr[j]存储的时从
			arr[j] |= arr[i]
			hash[arr[j]] = true
		}
	}
	return len(hash)
}
